// Coyote BoT par asloon qui se fait chier un certain
// 8 juillet 2012, à Douvres la Délivrande 14440 France

// Publication éventuelle pour début Septembre si ça intéresse du
// monde et si le code ne sera pas trop moche.

// Place au placard à include !

#include <iostream>
#include <string>
#include <stdio.h>
#include <time.h>
#include <vector>
#include <stdlib.h>
#include <cstring>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
//#include <windows.h>



using namespace std;

int main()
{
    //Prototypes
    void strsplit(char[], vector<string> &v);
    void display_ASCIIart();

    //Déclarations
    string log_path("/home/coyote/Bureau/games.log");
    vector<string> line_hashed;
    char line[1024];

    // Presentation
    display_ASCIIart();
    sleep(1);

        printf("Ouverture du log => ");

        FILE * LogStream;
        LogStream = fopen(log_path.c_str(), "r"); // Ouverture du log en lecture seule.

        if(LogStream == NULL) perror("Error opening file");

    // TODO : Make a function which search the log path automaticaly.
        printf("[Found] \n");

        setvbuf(LogStream, NULL, _IONBF, 0); // Reduction de la taille du buffer a 0
        fseek (LogStream , 0 , SEEK_END); // Placement du curseur au EOF

        while(true) {

            usleep(200);

            if ( (void*) fgets (line , 4192 , LogStream) != NULL ) {

              //  fputs(line, stdout);
                strsplit(line, line_hashed);

            }

        }

        fclose(LogStream);

    return 0;
}


/***************************************************/

void strsplit(char *line, vector<string> &line_hashed)
{
    line_hashed.resize(0);
    char * pch;
    pch = strtok(line,":");
    line_hashed.push_back(pch);

    while (pch != NULL) {
        line_hashed.push_back(pch);
        pch = strtok (NULL, "\\");
    }

    printf("%s", line_hashed.at(1));

}

void display_ASCIIart()
{
   printf("         ____                  _       ____      _____               \n ");
   printf("       / ___|___  _   _  ___ | |_ ___| __ )  __|_   _|               \n ");
   printf("      | |   / _ \\\| | | |/ _ \\\| __/ _ \\\  _ \\\ / _ \\\| |       \n ");
   printf("      | |__| (_) | |_| | (_) | ||  __/ |_) | (_) | |                 \n ");
   printf("       \\\____\\\___/ \\\__, |\\\___/ \\\__\\\___|____/ \\\___/|_|   \n ");
   printf("                  |___/                                              \n\n");
   printf("                Par Coyotek sous licence GNU/GPL                      \n");
   printf("                        version 0.0.1                               \n\n");
}
